Skip to content

Version Packages - #1832

Merged
RhysSullivan merged 1 commit into
mainfrom
changeset-release/main
Aug 30, 2026
Merged

Version Packages#1832
RhysSullivan merged 1 commit into
mainfrom
changeset-release/main

Conversation

@RhysSullivan

@RhysSullivan RhysSullivan commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@executor-js/cli@0.2.54

Patch Changes

@executor-js/config@1.6.4

Patch Changes

@executor-js/execution@1.6.4

Patch Changes

@executor-js/sdk@1.6.4

Patch Changes

  • #1858 ffcfbc0 Thanks @RhysSullivan! - Add locally installed OpenAI Codex plugins as one-click integrations: Messages
    (iMessage/SMS), Chrome, Computer Use, Computer History, and OpenAI Developer
    Docs. They appear in the connect dialog with their own icons, and a card that
    cannot run yet says what to install and links to it.

    Tool calls reach the plugins through codex app-server rather than a plugin's
    own MCP server, because their services only honour calls from a Codex host
    session. Computer Use and Chrome ship no MCP server at all, so their APIs are
    projected as typed tools — list_apps, click, read_page, navigate — that
    compile to a single call each. No model turn is involved; nothing is bundled or
    downloaded, and a machine without Codex simply sees the setup steps.

    A plugin's own approval prompt now reaches the caller, and states the terms it
    carries: a browser prompt that persists for a site says so. Approvals are asked
    once per session rather than per call.

    Elicitation requests can carry implementation-defined metadata through
    FormElicitation / UrlElicitation, and a paused execution reports it. Both
    fields are optional and additive.

  • #1346 10e16a5 Thanks @RhysSullivan! - Creating a connection over an existing one is rejected instead of silently overwriting it

    connections.create used to upsert: a create with the same (owner, integration, name) replaced the saved connection and, for a pasted value, overwrote the stored secret itself. It now fails with the new ConnectionAlreadyExistsError and leaves the existing connection untouched. Remove the connection first, or pick a different name.

    This adds one error to the wire contract: the POST /connections endpoint can answer HTTP 409 with tag ConnectionAlreadyExistsError, and the connections.create core tool resolves the same case as { ok: false, error: { code: "connection_already_exists" } }. The core tool now also resolves the other expected input failures the same way instead of as opaque internal errors: integration_not_found for an unknown integration and invalid_connection_input for an invalid input. The change is additive — no existing status, field, or success shape moves.

    OAuth is unaffected. Fresh OAuth connects already resolve a taken name to the next free suffix through newConnection, and reconnect still re-mints the same connection on purpose.

  • #1708 515d6aa Thanks @RhysSullivan! - Stale "unhealthy" verdicts no longer wait for a manual "Check now"

    A connection's persisted health verdict was only ever re-checked from the web UI, so after one bad probe (a transient upstream error, a refresh that failed once) agents reading connections.list kept reporting "unhealthy, reconnect" for a connection that worked fine — invocation auto-refreshes OAuth tokens — until a human opened the page and clicked "Check now".

    Two repair paths make the verdict track reality on its own. The agent-facing connections.list now re-runs the same probe as "Check now" before reporting a non-healthy verdict older than a minute, so recovery shows on the next read while repeated lists collapse to one probe per window. And a successful tool invocation through a connection wearing a non-healthy verdict flips it back to healthy — real traffic is stronger evidence than any probe. Tool-sync failure verdicts and grants the authorization server has rejected as invalid_grant are deliberately left alone: the first is cleared only by a successful sync, and the second genuinely requires a reconnect. A call whose credential no longer resolves is left alone too — a rendered request omits the missing placement, so an upstream that answers unauthenticated proves nothing about a credential that is gone.

    PluginCtx.connections gains checkHealth, the same probe-with-freshness-window the executor surface already exposed.

  • #1818 06bf742 Thanks @ramarivera! - Rejected MCP OAuth grants now request reconnect without registering a disposable client

    Remote MCP catalog discovery used the MCP SDK's interactive OAuth fallback when an upstream rejected Executor's stored bearer with 401. A background refresh cannot finish that browser authorization, but the SDK first fetched OAuth metadata and dynamically registered another client. Executor then preserved the old catalog under a generic degraded health verdict, so clients saw zero or stale tools without a reliable reconnect signal.

    Executor now stops at the authenticated HTTP boundary for OAuth-backed MCP transports. A rejected stored bearer becomes a structured reauthorization result before OAuth discovery or Dynamic Client Registration runs. Catalog refresh still preserves the last authoritative tools, but records the connection as expired with a reconnect-required detail so the UI and API can direct the user through authorization again.

    API-key and unauthenticated MCP transports keep their existing 401 behavior, and ordinary incomplete discovery results remain degraded.

@executor-js/vite-plugin@0.0.64

Patch Changes

@executor-js/runtime-quickjs@1.6.4

Patch Changes

  • Updated dependencies []:
    • @executor-js/codemode-core@1.6.4

@executor-js/plugin-desktop-settings@1.6.4

Patch Changes

@executor-js/plugin-example@1.6.4

Patch Changes

@executor-js/plugin-file-secrets@1.6.4

Patch Changes

  • #1838 939b96f Thanks @RhysSullivan! - Import plugin-authoring symbols from @executor-js/sdk/core instead of the package root. The published root is the Promise surface and does not export StorageError, definePlugin, PluginCtx, or Plugin, so both packages failed to load when installed from npm.

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4

@executor-js/plugin-graphql@1.6.4

Patch Changes

@executor-js/plugin-keychain@1.6.4

Patch Changes

  • #1838 939b96f Thanks @RhysSullivan! - Import plugin-authoring symbols from @executor-js/sdk/core instead of the package root. The published root is the Promise surface and does not export StorageError, definePlugin, PluginCtx, or Plugin, so both packages failed to load when installed from npm.

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4

@executor-js/plugin-mcp@1.6.4

Patch Changes

  • #1858 ffcfbc0 Thanks @RhysSullivan! - Add locally installed OpenAI Codex plugins as one-click integrations: Messages
    (iMessage/SMS), Chrome, Computer Use, Computer History, and OpenAI Developer
    Docs. They appear in the connect dialog with their own icons, and a card that
    cannot run yet says what to install and links to it.

    Tool calls reach the plugins through codex app-server rather than a plugin's
    own MCP server, because their services only honour calls from a Codex host
    session. Computer Use and Chrome ship no MCP server at all, so their APIs are
    projected as typed tools — list_apps, click, read_page, navigate — that
    compile to a single call each. No model turn is involved; nothing is bundled or
    downloaded, and a machine without Codex simply sees the setup steps.

    A plugin's own approval prompt now reaches the caller, and states the terms it
    carries: a browser prompt that persists for a site says so. Approvals are asked
    once per session rather than per call.

    Elicitation requests can carry implementation-defined metadata through
    FormElicitation / UrlElicitation, and a paused execution reports it. Both
    fields are optional and additive.

  • #1818 06bf742 Thanks @ramarivera! - Rejected MCP OAuth grants now request reconnect without registering a disposable client

    Remote MCP catalog discovery used the MCP SDK's interactive OAuth fallback when an upstream rejected Executor's stored bearer with 401. A background refresh cannot finish that browser authorization, but the SDK first fetched OAuth metadata and dynamically registered another client. Executor then preserved the old catalog under a generic degraded health verdict, so clients saw zero or stale tools without a reliable reconnect signal.

    Executor now stops at the authenticated HTTP boundary for OAuth-backed MCP transports. A rejected stored bearer becomes a structured reauthorization result before OAuth discovery or Dynamic Client Registration runs. Catalog refresh still preserves the last authoritative tools, but records the connection as expired with a reconnect-required detail so the UI and API can direct the user through authorization again.

    API-key and unauthenticated MCP transports keep their existing 401 behavior, and ordinary incomplete discovery results remain degraded.

  • Updated dependencies [ffcfbc0, 10e16a5, 9dcfaa5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4
    • @executor-js/react@1.4.67
    • @executor-js/api@1.4.67
    • @executor-js/config@1.6.4

@executor-js/plugin-onepassword@1.6.4

Patch Changes

  • #1860 2cad774 Thanks @RhysSullivan! - 1Password-backed connections no longer pay a 1Password read on every tool call

    Each tool call resolves its connection's credential, and for 1Password-backed connections every resolution shelled out to the op CLI — roughly a second per call under desktop-app auth, multiplying the latency of every call several times over. The spawn was also synchronous, so one slow resolution (for example op waiting on a 1Password approval prompt) blocked the whole local server for every other request, with no timeout on that path.

    Three changes:

    • Successful resolutions are now served from memory for a short TTL (default 60s, secretCacheTtlMs). The cache keys by a fingerprint of the provider config, so editing or removing an account drops all cached secrets at once; not-found, ambiguity, and failure outcomes are never retained. Concurrent resolutions of the same ref share one backend read even with the TTL set to 0.
    • The op CLI now runs as an asynchronous spawn with a hard deadline (the plugin's existing timeoutMs), so a stuck op fails with the troubleshooting message instead of freezing the server. Auth reaches the child per spawn (service-account token via the environment, desktop account via --account) instead of through the previous backend's process-global token state.
    • Services are memoized per auth identity, so the SDK fallback reuses one authenticated client instead of re-authenticating per resolution.
  • Updated dependencies [ffcfbc0, 10e16a5, 9dcfaa5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4
    • @executor-js/react@1.4.67
    • @executor-js/api@1.4.67

@executor-js/plugin-openapi@1.6.4

Patch Changes

@executor-js/plugin-toolkits@1.5.39

Patch Changes

@executor-js/codemode-core@1.6.4

executor@1.6.4

Patch Changes

  • #1858 ffcfbc0 Thanks @RhysSullivan! - Add locally installed OpenAI Codex plugins as one-click integrations: Messages
    (iMessage/SMS), Chrome, Computer Use, Computer History, and OpenAI Developer
    Docs. They appear in the connect dialog with their own icons, and a card that
    cannot run yet says what to install and links to it.

    Tool calls reach the plugins through codex app-server rather than a plugin's
    own MCP server, because their services only honour calls from a Codex host
    session. Computer Use and Chrome ship no MCP server at all, so their APIs are
    projected as typed tools — list_apps, click, read_page, navigate — that
    compile to a single call each. No model turn is involved; nothing is bundled or
    downloaded, and a machine without Codex simply sees the setup steps.

    A plugin's own approval prompt now reaches the caller, and states the terms it
    carries: a browser prompt that persists for a site says so. Approvals are asked
    once per session rather than per call.

    Elicitation requests can carry implementation-defined metadata through
    FormElicitation / UrlElicitation, and a paused execution reports it. Both
    fields are optional and additive.

  • #1477 c0c7a0d Thanks @RhysSullivan! - Stop exporting credential-bearing URLs in telemetry. Every query parameter
    value, URL fragment, and userinfo component is stripped from exported span
    URLs — no parameter name is trusted — on every exporter path: the cloud span
    processors, the self-host OTLP exporter, the browser client's OTLP exporter,
    and the forwarded browser trace batches. User-supplied MCP endpoints are
    sanitized before being stamped onto spans.

  • #1841 d13151a Thanks @RhysSullivan! - 1Password: multiple named accounts. The provider now holds any number of named accounts — a work account next to a personal one, or a service-account token next to desktop-app biometrics — each scoping its own set of vaults. The settings card lists every account with independent edit and disconnect, existing single-account configs upgrade in place, and op:// refs keep their vault-first addressing: a vault name that exists in more than one account is an explicit ambiguity error, never a silent pick.

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4
    • @executor-js/local@1.6.4
    • @executor-js/api@1.4.67
    • @executor-js/runtime-quickjs@1.6.4

@executor-js/cloud@1.4.65

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 9dcfaa5, 515d6aa, 06bf742]:
    • @executor-js/plugin-mcp@1.6.4
    • @executor-js/sdk@1.6.4
    • @executor-js/react@1.4.67
    • @executor-js/api@1.4.67
    • @executor-js/execution@1.6.4
    • @executor-js/vite-plugin@0.0.64
    • @executor-js/cloudflare@0.0.46
    • @executor-js/host-mcp@1.4.4
    • @executor-js/mcp-apps-shell@1.4.15
    • @executor-js/runtime-dynamic-worker@1.4.4
    • @executor-js/plugin-graphql@1.6.4
    • @executor-js/plugin-openapi@1.6.4
    • @executor-js/plugin-toolkits@1.5.39
    • @executor-js/plugin-workos-vault@0.0.2
    • @executor-js/runtime-quickjs@1.6.4

@executor-js/host-selfhost@0.0.46

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 9dcfaa5, 515d6aa, 06bf742]:
    • @executor-js/plugin-mcp@1.6.4
    • @executor-js/sdk@1.6.4
    • @executor-js/react@1.4.67
    • @executor-js/app@1.4.4
    • @executor-js/analytics@0.1.11
    • @executor-js/api@1.4.67
    • @executor-js/execution@1.6.4
    • @executor-js/host-mcp@1.4.4
    • @executor-js/mcp-apps-shell@1.4.15
    • @executor-js/plugin-encrypted-secrets@0.0.46
    • @executor-js/plugin-graphql@1.6.4
    • @executor-js/plugin-openapi@1.6.4
    • @executor-js/plugin-provider-service-split@0.0.18
    • @executor-js/plugin-toolkits@1.5.39
    • @executor-js/runtime-quickjs@1.6.4

@executor-js/local@1.6.4

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 9dcfaa5, 939b96f, 515d6aa, 06bf742, 2cad774]:
    • @executor-js/plugin-mcp@1.6.4
    • @executor-js/sdk@1.6.4
    • @executor-js/react@1.4.67
    • @executor-js/plugin-file-secrets@1.6.4
    • @executor-js/plugin-keychain@1.6.4
    • @executor-js/plugin-onepassword@1.6.4
    • @executor-js/app@1.4.4
    • @executor-js/analytics@0.1.11
    • @executor-js/api@1.4.67
    • @executor-js/config@1.6.4
    • @executor-js/execution@1.6.4
    • @executor-js/vite-plugin@0.0.64
    • @executor-js/host-mcp@1.4.4
    • @executor-js/mcp-apps-shell@1.4.15
    • @executor-js/plugin-desktop-settings@1.6.4
    • @executor-js/plugin-example@1.6.4
    • @executor-js/plugin-graphql@1.6.4
    • @executor-js/plugin-openapi@1.6.4
    • @executor-js/plugin-provider-service-split@0.0.18
    • @executor-js/plugin-toolkits@1.5.39
    • @executor-js/runtime-quickjs@1.6.4

@executor-js/e2e@0.0.44

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:
    • @executor-js/plugin-mcp@1.6.4
    • @executor-js/sdk@1.6.4
    • @executor-js/api@1.4.67
    • @executor-js/plugin-graphql@1.6.4
    • @executor-js/plugin-openapi@1.6.4
    • @executor-js/plugin-toolkits@1.5.39

@executor-js/example-all-plugins@0.0.65

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 939b96f, 515d6aa, 06bf742, 2cad774]:
    • @executor-js/plugin-mcp@1.6.4
    • @executor-js/sdk@1.6.4
    • @executor-js/plugin-file-secrets@1.6.4
    • @executor-js/plugin-keychain@1.6.4
    • @executor-js/plugin-onepassword@1.6.4
    • @executor-js/plugin-graphql@1.6.4
    • @executor-js/plugin-openapi@1.6.4
    • @executor-js/plugin-workos-vault@0.0.2

@executor-js/example-docs-sdk-quickstart@0.0.50

Patch Changes

@executor-js/analytics@0.1.11

Patch Changes

  • Updated dependencies []:
    • @executor-js/execution@1.6.4

@executor-js/api@1.4.67

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:
    • @executor-js/sdk@1.6.4
    • @executor-js/execution@1.6.4
    • @executor-js/host-mcp@1.4.4

@executor-js/cloudflare@0.0.46

Patch Changes

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:
    • @executor-js/sdk@1.6.4
    • @executor-js/api@1.4.67
    • @executor-js/execution@1.6.4
    • @executor-js/host-mcp@1.4.4

@executor-js/mcp-apps-shell@1.4.15

Patch Changes

  • Updated dependencies [9dcfaa5]:
    • @executor-js/react@1.4.67
    • @executor-js/runtime-quickjs@1.6.4

@executor-js/runtime-workerd-subprocess@0.0.19

Patch Changes

  • Updated dependencies []:
    • @executor-js/codemode-core@1.6.4

@executor-js/plugin-encrypted-secrets@0.0.46

Patch Changes

@executor-js/plugin-provider-service-split@0.0.18

Patch Changes

@executor-js/react@1.4.67

Patch Changes

  • #1559 9dcfaa5 Thanks @Adityakk9031! - Reconnecting a DCR connection now re-registers instead of reusing a stranded client

    A dynamically registered OAuth client is bound to the redirect URI it registered with. Once the app's callback origin changed (127.0.0.1 to localhost), Reconnect still started the flow against the stored client, and the authorization server rejected it — leaving no way to repair the connection.

    Reconnect now takes the same probe → CIMD-or-register → start route as the initial connect, so the registration gateway replaces the stranded client against the current redirect URI. Methods with a fixed, hand-registered app are unaffected and keep using their stored client.

  • Updated dependencies [ffcfbc0, 10e16a5, 515d6aa, 06bf742]:

    • @executor-js/sdk@1.6.4
    • @executor-js/api@1.4.67

@executor-js/desktop@1.6.4

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 28, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud 4e54b23 Aug 30 2026, 12:05 AM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 28, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing 4e54b23 Commit Preview URL

Branch Preview URL
Aug 30 2026, 12:03 AM

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch 2 times, most recently from 8446a4d to 7b9029c Compare August 28, 2026 21:07
@pkg-pr-new

pkg-pr-new Bot commented Aug 28, 2026

Copy link
Copy Markdown

Open in StackBlitz

@executor-js/cli

npm i https://pkg.pr.new/@executor-js/cli@1832

@executor-js/config

npm i https://pkg.pr.new/@executor-js/config@1832

@executor-js/execution

npm i https://pkg.pr.new/@executor-js/execution@1832

@executor-js/sdk

npm i https://pkg.pr.new/@executor-js/sdk@1832

@executor-js/codemode-core

npm i https://pkg.pr.new/@executor-js/codemode-core@1832

@executor-js/runtime-quickjs

npm i https://pkg.pr.new/@executor-js/runtime-quickjs@1832

@executor-js/plugin-file-secrets

npm i https://pkg.pr.new/@executor-js/plugin-file-secrets@1832

@executor-js/plugin-graphql

npm i https://pkg.pr.new/@executor-js/plugin-graphql@1832

@executor-js/plugin-keychain

npm i https://pkg.pr.new/@executor-js/plugin-keychain@1832

@executor-js/plugin-mcp

npm i https://pkg.pr.new/@executor-js/plugin-mcp@1832

@executor-js/plugin-onepassword

npm i https://pkg.pr.new/@executor-js/plugin-onepassword@1832

@executor-js/plugin-openapi

npm i https://pkg.pr.new/@executor-js/plugin-openapi@1832

executor

npm i https://pkg.pr.new/executor@1832

commit: 4e54b23

@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch 16 times, most recently from 159a153 to 4720370 Compare August 29, 2026 23:41
@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch from 4720370 to 46fe769 Compare August 29, 2026 23:56
@RhysSullivan
RhysSullivan force-pushed the changeset-release/main branch from 46fe769 to 4e54b23 Compare August 30, 2026 00:01
@RhysSullivan
RhysSullivan merged commit 5c0fa88 into main Aug 30, 2026
43 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant